计算机系统基础(四)

复杂数据类型的机器级表示

数组的分配与访问

  • 分配在静态区的数组,在链接后,在可执行目标文件的数据段中分配了空间。
  • 在函数内部的数组,是auto型数组,数组数据分配在栈中,故数组首址通过EBP来定位。

结构体数据的分配和访问

  • 分配在栈中的auto结构型变量的首地址由EBP或ESP来定位
  • 分配在静态区的结构型变量首地址是一个可以确定的静态区地址
  • 结构型变量x各成员首址可用“基址加偏移量”的寻址方式

  • 结构体数据作为入口参数,通常应按地址传递

联合体数据的分配和访问

  • 联合体各成员共享存储空间,按最大长度成员所需空间大小为准。
  • 当事先知道某种数据结构中的不同字段的使用时间是互斥的,就可以将这些字段声明为联合,以减少空间

数据的对齐

减少访存次数

对齐方式.bmp

越界访问和缓冲区溢出

TIM截图20171102232546.bmp